// Y型链表找第一个公共节点
// 可以先让两个链表分别遍历，cur1 负责遍历链表 1，cur2 负责遍历链表 2
// 当第一个链表走到空位置，就从链表二开始遍历
// 同理，第二个链表走到空位置就从链表1开始遍历
// 这样两个链表就会在第一个公共节点相遇

public class FindFirstCommonNode {
    public ListNode FindFirstCommonNode1(ListNode pHead1, ListNode pHead2) {
        ListNode cur1 = pHead1;
        ListNode cur2 = pHead2;

        while(cur1 != cur2){
            if(cur1 != null) cur1 = cur1.next;
            else cur1 = pHead2;
            if(cur2 != null) cur2 = cur2.next;
            else cur2 = pHead1;
        }

        return cur1;
    }
}
class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
